Currently, data storage subsystems (DSSs) are configured as arrays of disk drives which provide high capacity storage for one or more attached host processors. Each host processor is coupled to the DSS via a high capacity communication channel and a dedicated front-end processor at the DSS. The front-end processor performs the command and protocol processing to facilitate the data transfers. However, when the actual data transfer occurs, it often by-passes the front-end processor and is performed as a "direct memory access" (DMA). Under such circumstances, the input data flows directly from the host processor to a cache memory in the DSS or from the cache memory in the DSS to the host processor, in both cases bypassing any buffering by the front-end processor. During a DMA, the front end processor is idle.
The prior art has suggested that such front end processors be applied to other functions during a DMA input/output data transfer action. U.S. Pat. No. 4,400,772 to Broyles et al., entitled "Method and Apparatus for Direct Memory Access in a Data Processing System" suggests that during a DMA, the central processing unit be placed in an idle state, without disturbing the central processing unit registers. This enables the central processing unit to then carry out secondary functions. One such suggested secondary function is to continue the refreshing of dynamic memory used in the system.
When a DSS processor, in a system such as described above by Broyles et al. remains idle, typically, the operating system relinquishes control of the DSS processor and makes it available for a new task. However, there is no guarantee how long the new task will take to execute. In such a case, if the DSS processor is occupied with the new task and the host processor's input/output operation finishes, the system remains in a wait state until the DSS processor again becomes available to perform an input/output function. This action may slow the system's primary function, i.e., input/output of data from/to the host processor. Only when the DSS processor becomes available to process the necessary command and interface data can an input/output action be accommodated.
Accordingly, it is an object of this invention to provide a method and apparatus for control of a DSS which enables a front end processor to be utilized for other tasks during an input/output data transfer.
It is another object of this invention to assure that the front-end processor of a DSS is available for use with an input/output action at the end of an input/output data transfer, irrespective of what other tasks have been assigned to it to be carried out.